package com.sinosoft.sm.user.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.sinosoft.sm.user.entity.UserEntity;

/**
 * 用户信息管理持久化接口定义
 * @author leichao
 */
public interface UserEntityMapper{

	/**
	 * 根据用户标识删除用户 （此方法留用）
	 * @param username 用户名
	 */
	public void deleteUserByUsername(String username);
	
	/**
	 * 获取所有用户信息
	 * @return 所有用户信息
	 */
	public List<UserEntity> getAllUser(UserEntity userEntity);
	
	/**
	 * 根据id获取用户信息,且state='1'
	 * @param id 用户id
	 * @return 所有用户信息
	 */
	public UserEntity getUserByUsername(String username);
	
	/**
	 * 添加用户
	 * @param userEntity 用户信息
	 */
	public void addUser(UserEntity userEntity);
	
	/**
	 * 根据用户id更新用后信息
	 * @param userEntity
	 */
	public void updateUserByUsernameNoPassword(UserEntity userEntity);
	
	/**
	 * 根据用户id启用禁用用户
	 * @param state 0:禁用  1：启用
	 * @param id 
	 */
	public void updateUserStateByUsername(@Param("state")String state,@Param("username")String username);

	/**
	 * 更新用户密码
	 * @param username
	 * @param password
	 */
	public boolean updateUserPassword(@Param("username")String username,@Param("password") String password);

	/**
	 *  获取用户信息
	 * 若userEntity为空则返回所有
	 * @param entity
	 * @return
	 */
	public List<UserEntity> getUsers(UserEntity entity);
}
